home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / pcmania / render73 / Foro / FUERTES / GALEON / GALEON.INC < prev    next >
Text File  |  1998-08-05  |  22KB  |  725 lines

  1. // #declare velas=0 --> pone velas
  2. // #declare luces=0 --> enciende luces
  3.  
  4. #include "marina.tex"
  5. #include "jarcia.inc"
  6. #include "velas.inc"
  7. #include "12libras.inc"
  8. #include "palos.inc"
  9. #ifndef (portas_abiertas)
  10.   #declare portas_abiertas=0 // abre portas y saca cañones
  11. #end
  12.  
  13. #declare madera_cubierta_superior=texture {madera3 scale .15}
  14. #declare madera_cubierta_inferior=texture {madera1 scale .15}
  15. #declare madera_alcazar_bordas=texture {madera_cubierta_inferior}
  16.  
  17. /********************************* inicio casco basico *******************************/
  18.  
  19. #declare casco=
  20. union
  21. {
  22.   sphere {  x*-100,30 }
  23.   cylinder { x*-100,0,30 }
  24.   difference
  25.   {
  26.    sphere {0,30 scale <4,1,1>}
  27.    box {<100,1,30>,<130,-30,-30>}
  28.   }
  29.   cylinder {<-100,0,.75>,<-100,0,-.75>,35}
  30.   box {<-100,-20,.75>,<0,-35,-.75>}
  31.   box {<0,0,.75>,<105,-35,-.75>}
  32.   texture {cobre}
  33.   clipped_by {plane {y,0}}
  34. }
  35.  
  36. #declare cubierta_inferior=
  37. union
  38. {
  39.  cylinder {<-100,0.1,0>,<-100,5,0>,30 texture {madera_cubierta_inferior}}
  40.  cylinder {<-100,5.1,0>,<-100,10,0>,30 texture {madera_cubierta_inferior translate x*50}}
  41.  box {<-100,0.1,30>,<0,5,-30> texture {madera_cubierta_inferior}}
  42.  box {<-100,5.1,30>,<0,10,-30> texture {madera_cubierta_inferior translate x*50}}
  43.  box {<-135,0,.75>,<105,10,-.75> texture {madera_cubierta_inferior}}
  44.  difference
  45.  {
  46.    union
  47.    {
  48.     cylinder {y*0.1,y*5,30 scale <4,1,1> texture {madera_cubierta_inferior}}
  49.     cylinder {y*5.1,y*10,30 scale <4,1,1> texture {madera_cubierta_inferior translate x*50}}
  50.    }
  51.    box {<100,-1,30>,<130,11,-30> texture {madera_cubierta_inferior}}
  52.  }
  53.  texture {madera_cubierta_inferior}
  54. }
  55.  
  56. #declare cubierta_superior1=
  57. union
  58. {
  59.  cylinder {<-100,10.1,0>,<-100,15,0>,30 texture {madera_cubierta_superior}}
  60.  cylinder {<-100,15.1,0>,<-100,20,0>,30 texture {madera_cubierta_superior translate x*50}}
  61.  box {<-100,10.1,30>,<0,15,-30> texture {madera_cubierta_superior}}
  62.  box {<-100,15.1,30>,<0,20,-30> texture {madera_cubierta_superior translate x*50}}
  63.  box {<-135,10,.75>,<105,20,-.75> texture {madera_cubierta_superior}}
  64.  prism
  65.  {linear_spline .75,-.75 5 <-135,10>,<-135,20>,<-155,20>,<-135,10>,<-135,10>
  66.                 rotate x*-90 texture {madera_cubierta_superior}}
  67.  difference
  68.  {
  69.    union
  70.    {
  71.     cylinder {y*10.1,y*15,30 scale <4,1,1> texture {madera_cubierta_superior}}
  72.     cylinder {y*15.1,y*20,30 scale <4,1,1> texture {madera_cubierta_superior translate x*50}}
  73.    }
  74.    box {<100,9,30>,<130,21,-30> texture {madera_cubierta_superior}}
  75.  }
  76. }
  77.  
  78. #declare cubierta_superior=
  79. difference
  80. {
  81.  object {cubierta_superior1}
  82.  difference
  83.  {
  84.    cylinder {y*10.11,y*21,28.5 scale <4,1,1> texture {madera2}}
  85.    box {<40,10.1101,28>,<130,22,-28.5> texture {madera2}}
  86.    box {<-10,10.1101,28>,<-130,22,-28.5> texture {madera2}}
  87.  }
  88.  box {<0,10.11,28.5>,<-80,22,-28.5>}
  89. //portas
  90.  #declare aa=(-65)
  91.  #while (aa<20)
  92.        box {<aa+3,13,35>,<aa-3,19,-35> texture {madera2}}
  93.        #declare aa=aa+10
  94.  #end
  95.  texture {madera2}
  96. }
  97.  
  98. #declare alcazar_proa=
  99. union
  100. {
  101.  prism
  102.  { linear_spline 20,35 8 <-100,28.5>,<-100,32>,<-180,2>,<-180,-2>,<-100,-32>,
  103.                 <-100,-28.5>,<-178,0>,<-100,28.5> texture {madera_alcazar_bordas}}
  104.  prism
  105.  { linear_spline 20,20.001 4 <-100,28.51>,<-100,-28.51>,<-178,0>,<-100,28.51>
  106.                   texture {madera2}}
  107.  prism
  108.  { linear_spline 20,18.9 4 <-100,28.51>,<-100,-28.51>,<-178,0>,<-100,28.51>
  109.                   texture {madera_alcazar_bordas}}
  110.  box {<-100,20,29>,<-90,20.1,-29> texture {madera2}}
  111.  box {<-90,20,29>,<-80,20.1,-29> texture {madera2}}
  112.  
  113.  union
  114.  {
  115.   sphere {<-180,22.5,0>,2} sphere {<-180,27.5,0>,2} sphere {<-180,32.5,0>,2}
  116.   texture {madera_alcazar_bordas}
  117.  }
  118. }
  119.  
  120. #declare alcazar_popa=
  121. union
  122. {
  123.  union //suelo
  124.  {
  125.   box {<40,20.0001,29>,<114,18,20.1> }
  126.   box {<40,20.0001,20>,<114,18,10.1> }
  127.   box {<40,20.0001,.05>,<114,18,10> }
  128.   box {<40,20.0001,-29>,<114,18,-20.1> }
  129.   box {<40,20.0001,-20>,<114,18,-10.1> }
  130.   box {<40,20.0001,-.05>,<114,18,-10> }
  131.   cylinder {<107.7,17.9,0>,<107.5,21,0>,2 texture {metal}}
  132.   texture {madera2}
  133.  }
  134.  union //lateral
  135.  {
  136.   box { <40,18,28>,<114,27.4,30> texture {madera_alcazar_bordas translate <6,-2,5>}}
  137.   box { <40,35,28>,<114,27.5,30> texture {madera_alcazar_bordas translate <76,-23,165>}}
  138.  }
  139.  union //lateral
  140.  {
  141.   box { <40,18,-28>,<114,27.4,-30> texture {madera_alcazar_bordas translate <6,-2,5>}}
  142.   box { <40,35,-28>,<114,27.5,-30> texture {madera_alcazar_bordas translate <76,-23,165>}}
  143.  }
  144.  union //popa
  145.  {
  146.   box { <113,18,29>,<115,27.4,-29> texture {madera_alcazar_bordas translate <6,-2,5>}}
  147.   box { <113,35,29>,<115,27.5,-29> texture {madera_alcazar_bordas translate <6,-2,5>}}
  148.  }
  149.  union //proa
  150.  {
  151.   box { <40,18,29>,<42,35,25> texture {madera_alcazar_bordas translate <6,-2,5>}}
  152.   box { <40,18,-29>,<42,35,-25> texture {madera_alcazar_bordas translate <6,-2,5>}}
  153.  }
  154. }
  155.  
  156. #declare bordas=
  157. union
  158. {
  159.  box {<-100,20.1,30>,<-70,30,28.5>}
  160.  cylinder {<-70,20.1,30.0001>,<-70,20.1,28.5001>,10
  161.            clipped_by {box {<-81,20.1,31>,<-59,31,27>}}}
  162.  box {<-100,20.1,-30>,<-70,30,-28.5>}
  163.  cylinder {<-70,20.1,-30.0001>,<-70,20.1,-28.5001>,10
  164.            clipped_by {box {<-81,20.1,-31>,<-59,31,-27>}}}
  165.  
  166.  prism { linear_spline 30,28.5 5 <40,20.1>,<40,25>,<5,25>,<0,20.1>,<40,20.1>
  167.                        rotate x*-90}
  168.  prism { linear_spline -30,-28.5 5 <40,20.1>,<40,25>,<5,25>,<0,20.1>,<40,20.1>
  169.                        rotate x*-90}
  170.  union
  171.  {
  172.   cylinder {<-80,0,29.5>,<40,0,29.5>,.5}
  173.   cylinder {<-80,0,28>,<40,0,28>,.5}
  174.   box {<-80,0.5,29.5>,<40,0,28>}
  175.   cylinder {<-80,0,-29.5>,<40,0,-29.5>,.5}
  176.   cylinder {<-80,0,-28>,<40,0,-28>,.5}
  177.   box {<-80,0.5,-29.5>,<40,0,-28>}
  178.   clipped_by {plane {-y,0}}
  179.   translate y*20
  180.  }
  181.  texture {madera_alcazar_bordas}
  182. }
  183.  
  184. #declare cubierta=
  185. union
  186. {
  187.  // cubierta central
  188.  box {<39.9,11.1,20.05>,<0.1,9,25>} box {<39.9,11.1,-20.05>,<0.1,9,-25>}
  189.  
  190.  box {<0,11.1,28.4>,<-50,9,20.05>} box {<0,11.1,-28.4>,<-50,9,-20.05>}
  191.  box {<-50.1,9,20.05>,<-80,11.1,28.4>} box {<-50.1,9,-20.05>,<-80,11.1,-28.4>}
  192.  
  193.  box {<0.1,9,20>,<40,11.1,10.05>} box {<-29.9,9,-20>,<40,11.1,-10.05>}
  194.  box {<0,9,10.05>,<-79.9,11.1,20>} box {<-79.9,9,-10.05>,<-29.9,11.1,-20>}
  195.  
  196.  box {<-29.9,9,.025>,<39.9,11.1,10>} box {<0.1,9,-.025>,<39.9,11.1,-10>}
  197.  box {<-30,9,.025>,<-79.9,11.1,10>} box {<0,9,-.025>,<-79.9,11.1,-10>}
  198.  texture {madera2}
  199. }
  200. /********************************* fin casco basico *******************************/
  201.  
  202. /********************************* inicio armamento *******************************/
  203. #declare porta=
  204. union
  205. {
  206.  union
  207.  {
  208.   box {<-1,.5,0>,<-2,-5.5,-.05>}
  209.   box {<1,.5,0>,<2,-5.5,-.05>}
  210.   cylinder {<-1,0,-.05>,<-2,0,-.05>,.1}
  211.   cylinder {<1,0,-.05>,<2,0,-.05>,.1}
  212.   sphere {<-1.8,.3,-.05>,.1} sphere {<-1.2,.3,-.05>,.1}
  213.   sphere {<1.8,.3,-.05>,.1} sphere {<1.2,.3,-.05>,.1}
  214.   sphere {<-1.8,-1,-.05>,.1} sphere {<-1.2,-1,-.05>,.1}
  215.   sphere {<1.8,-1,-.05>,.1} sphere {<1.2,-1,-.05>,.1}
  216.   sphere {<-1.8,-3,-.05>,.1} sphere {<-1.2,-3,-.05>,.1}
  217.   sphere {<1.8,-3,-.05>,.1} sphere {<1.2,-3,-.05>,.1}
  218.   sphere {<-1.8,-5,-.05>,.1} sphere {<-1.2,-5,-.05>,.1}
  219.   sphere {<1.8,-5,-.05>,.1} sphere {<1.2,-5,-.05>,.1}
  220.   texture {metal}
  221.  }
  222.  union
  223.  {
  224.   box {<2.95,-.05,0>,<-2.95,-2,.5>}
  225.   box {<2.95,-2.05,0>,<-2.95,-4,.5>}
  226.   box {<2.95,-4.05,0>,<-2.95,-6,.5>}
  227.   texture {madera_cubierta_superior}
  228.  }
  229.  union
  230.  {
  231.   box {<2.95,-.05,.5001>,<-2.95,-2,.5>}
  232.   box {<2.95,-2.05,.5001>,<-2.95,-4,.5>}
  233.   box {<2.95,-4.05,.5001>,<-2.95,-6,.5>}
  234.   box {<2.8,-.1,1>,<2.5,-6,.5>}
  235.   box {<-.15,-.1,1>,<.15,-6,.5>}
  236.   box {<-2.8,-.1,1>,<-2.5,-6,.5>}
  237.   texture {madera2}
  238.  }
  239. }
  240.  
  241. #declare armamento=
  242. union
  243. {
  244.  #declare aa=-65
  245.  #while (aa<20)
  246.     #if (portas_abiertas=1)
  247.       object {doce_libras rotate y*-90 translate <aa,11.1,-26>}
  248.       object {doce_libras rotate y*90 translate <aa,11.1,26>}
  249.       object {porta rotate x*135 translate <aa,19,-30>}
  250.       object {porta rotate x*135 rotate y*180 translate <aa,19,30>}
  251.     #else
  252.       object {doce_libras rotate y*-90 translate <aa,11.1,-16>}
  253.       object {doce_libras rotate y*90 translate <aa,11.1,16>}
  254.       object {porta rotate y*180 translate <aa,19,30>}
  255.       object {porta translate <aa,19,-30>}
  256.     #end
  257.   #declare aa=aa+10
  258.  #end
  259. }
  260. /********************************* fin armamento **********************************/
  261.  
  262. /********************************* inicio refuerzos bordas **************************/
  263. #declare refuerzos_bordas=
  264. union
  265. {
  266.  #declare aa=-80
  267.  #while (aa<1)
  268.     box {<aa-.5,10,28.5>,<aa+.5,20,27.5>}
  269.     box {<aa-.5,10,-28.5>,<aa+.5,20,-27.5>}
  270.     #declare aa=aa+10
  271.  #end
  272.  texture {madera_alcazar_bordas}
  273. }
  274. /********************************* fin refuerzos bordas ******************************/
  275.  
  276. /********************************* fin detalles alcazar ******************************/
  277. #declare detalles_alcazar=
  278. union
  279. {
  280.  //barandillas
  281.  union
  282.  {
  283.   cylinder {<1,0,28>,<1,0,10>,1}
  284.   cylinder {<1,0,-28>,<1,0,-10>,1}
  285.   clipped_by {plane {-y,0}}
  286.   translate y*28
  287.  }
  288.  union
  289.  {
  290.   cylinder {<1,20,26>,<1,28,26>,.75}
  291.   cylinder {<1,20,-26>,<1,28,-26>,.75}
  292.   cylinder {<1,20,21>,<1,28,21>,.75}
  293.   cylinder {<1,20,-21>,<1,28,-21>,.75}
  294.   cylinder {<1,20,16>,<1,28,16>,.75}
  295.   cylinder {<1,20,-16>,<1,28,-16>,.75}
  296.   cylinder {<1,20,11>,<1,28,11>,.75}
  297.   cylinder {<1,20,-11>,<1,28,-11>,.75}
  298.   texture {madera2}
  299.  }
  300.  //puertas
  301.  box {<-1,20,24>,<0,19,16>} box {<-1,19,24>,<0,10,23>} box {<-1,19,16>,<0,10,17>}
  302.  box {<-.5,19,18.5>,<0,10,17>}
  303.  box {<-.5,19,18.5>,<0,10,21>} box {<-.5,19,21.5>,<0,10,23>}
  304.  
  305.  box {<-1,20,-24>,<0,19,-16>} box {<-1,19,-24>,<0,10,-23>} box {<-1,19,-16>,<0,10,-17>}
  306.  box {<-.5,19,-18.5>,<0,10,-17>}
  307.  box {<-.5,19,-18.5>,<0,10,-21>} box {<-.5,19,-21.5>,<0,10,-23>}
  308.  
  309.  union
  310.  {
  311.   sphere {<-.5,17,18>,.1} sphere {<-.5,17,20>,.1} sphere {<-.5,17,21>,.1}
  312.   sphere {<-.5,13,18>,.1} sphere {<-.5,13,20>,.1} sphere {<-.5,13,21>,.1}
  313.   sphere {<-.5,17,-18>,.1} sphere {<-.5,17,-20>,.1} sphere {<-.5,17,-21>,.1}
  314.   sphere {<-.5,13,-18>,.1} sphere {<-.5,13,-20>,.1} sphere {<-.5,13,-21>,.1}
  315.   texture {metal}
  316.  }
  317.  //escalera
  318.  prism {linear_spline 9,8 5 <-5,10>,<0,20>,<-5,20>,<-10,10>,<-5,10> rotate x*-90}
  319.  prism {linear_spline -9,-8 5 <-5,10>,<0,20>,<-5,20>,<-10,10>,<-5,10> rotate x*-90}
  320.  #declare aa=0
  321.  #while (aa<5)
  322.    box {<-10+aa,(aa*2)+10,8>,<-5+aa,(aa*2)+11,-8>}
  323.    #declare aa=aa+1
  324.  #end
  325.  texture {madera_alcazar_bordas}
  326. }
  327. /********************************* inicio detalles alcazar ******************************/
  328.  
  329. /********************************* inicio timon ******************************/
  330. #declare timon=
  331. union
  332. {
  333.  box {<106,-35,.75>,<113,16,-.75>}
  334.  prism {linear_spline .75,-.75 6
  335.        <113.05,16>,<115,16>,<120,10>,<120,-35>,<113.05,-35>,<113.05,16>
  336.        rotate x*-90}
  337.  cylinder {<107.5,15,0>,<107.5,25,0>,.75}
  338.  prism {linear_spline .75,-.75 8 <110,29>,
  339.        <90,30>,<75,30>,<75,28>,<90,27>,<105,25>,<110,25>,<110,29>
  340.        rotate x*-90 texture {madera_alcazar_bordas}}
  341.  union
  342.  {
  343.   box {<102,0,-.76>,<117,5,.76>}
  344.   box {<102,-20,-.76>,<117,-25,.76>}
  345.   cylinder {<105.5,0,0>,<105.5,5,0>,1}
  346.   cylinder {<105.5,-20,0>,<105.5,-25,0>,1}
  347.   sphere {<103.5,1,-.76>,.5} sphere {<108,1,-.76>,.5} sphere {<115.5,1,-.76>,.5}
  348.   sphere {<103.5,1,.76>,.5} sphere {<108,1,.76>,.5} sphere {<115.5,1,.76>,.5}
  349.  
  350.   sphere {<103.5,4,-.76>,.5} sphere {<108,4,-.76>,.5} sphere {<115.5,4,-.76>,.5}
  351.   sphere {<103.5,4,.76>,.5} sphere {<108,4,.76>,.5} sphere {<115.5,4,.76>,.5}
  352.  
  353.   sphere {<103.5,-21,-.76>,.5} sphere {<108,-21,-.76>,.5} sphere {<115.5,-21,-.76>,.5}
  354.   sphere {<103.5,-21,.76>,.5} sphere {<108,-21,.76>,.5} sphere {<115.5,-21,.76>,.5}
  355.  
  356.   sphere {<103.5,-24,-.76>,.5} sphere {<108,-24,-.76>,.5} sphere {<115.5,-24,-.76>,.5}
  357.   sphere {<103.5,-24,.76>,.5} sphere {<108,-24,.76>,.5} sphere {<115.5,-24,.76>,.5}
  358.   texture {metal}
  359.  }
  360.  texture {madera_cubierta_inferior}
  361. }
  362. /********************************* fin timon  ********************************/
  363.  
  364. /********************************* inicio detalles cubiertas ******************/
  365. #declare detalles_cubierta=
  366. union
  367. {
  368.  union //base palo mayor
  369.  {
  370.   cylinder {<-10,11,6>,<-10,11,-6>,2}
  371.   cylinder {<10,11,6>,<10,11,-6>,2}
  372.   box {<-10,13,6>,<10,10,-6>}
  373.   texture {madera2}
  374.  }
  375.  union //base trinquete
  376.  {
  377.   cylinder {<-87,20,6>,<-87,20,-6>,2}
  378.   cylinder {<-103,20,6>,<-103,20,-6>,2}
  379.   box {<-103,22,6>,<-87,20,-6>}
  380.   texture {madera2}
  381.  }
  382.  union //base mesana
  383.  {
  384.   cylinder {<52,20,6>,<52,20,-6>,2}
  385.   cylinder {<78,20,6>,<78,20,-6>,2}
  386.   box {<78,22,6>,<52,20,-6>}
  387.   texture {madera2}
  388.  }
  389.  union //rejilla
  390.  {
  391.   box {<-35,10,5>,<-34,13,-5>}  box {<-20,10,5>,<-21,13,-5>}
  392.   box {<-35,10,5>,<-20,13,6>}  box {<-35,10,-5>,<-20,13,-6>}
  393.   box {<-34,10,5>,<-21,11.5,-5> pigment {rgb 0}}
  394.   #declare aa=-32.5
  395.   #while (aa<-22)
  396.     box {<aa-.25,10,5>,<aa+.25,12,-5>}
  397.     #declare aa=aa+2
  398.   #end
  399.   #declare aa=-3.5
  400.   #while (aa<5)
  401.     box {<-34,10,aa+.25>,<-21,12.001,aa-.25>}
  402.     #declare aa=aa+1.5
  403.   #end
  404.   texture {madera_cubierta_inferior}
  405.  }
  406.  union //soporte balas
  407.  {
  408.   box {<-64,11,5>,<-39,12,-5>}
  409.   box {<-64,11,3>,<-39,14,-3>}
  410.   box {<-64,11,1>,<-39,14.5,-1>}
  411.   texture {madera2}
  412.  }
  413.  union //balas
  414.  {
  415.   #declare aa=-63
  416.   #while (aa<-40)
  417.     sphere {<aa,12,4>,.8} sphere {<aa,12,-4>,.8}
  418.     sphere {<aa,14,2>,.8} sphere {<aa,14,-2>,.8}
  419.     #declare aa=aa+2
  420.   #end
  421.   texture {metal}
  422.  }
  423.  union //soporte escala mayor
  424.  {
  425.   box {<-10,20,25>,<15,22,29> texture {madera_alcazar_bordas}}
  426.   box {<-10,20,-25>,<15,22,-29> texture {madera_alcazar_bordas}}
  427.   #declare aa=-5
  428.   #while (aa<11)
  429.     torus {1,.1 rotate z*90 translate <aa,22.9,26.5>}
  430.     torus {1,.1 rotate z*90 translate <aa,22.9,-26.5>}
  431.     #declare aa=aa+5
  432.   #end
  433.   torus {1,.1 rotate x*90 translate <-10.9,21,25.5>}
  434.   torus {1,.1 rotate x*90 translate <-10.9,21,-25.5>}
  435.   torus {1,.1 rotate x*90 translate <15.9,21,25.5>}
  436.   torus {1,.1 rotate x*90 translate <15.9,21,-25.5>}
  437.   texture {metal}
  438.  }
  439.  union //soporte escala trinquete
  440.  {
  441.   box {<-100,30,-32>,<-80,32,-28> texture {madera_alcazar_bordas}}
  442.   box {<-100,30,32>,<-80,32,28> texture {madera_alcazar_bordas}}
  443.   #declare aa=-100
  444.   #while (aa<-80)
  445.     torus {1,.1 rotate z*90 translate <aa,32.9,31>}
  446.     torus {1,.1 rotate z*90 translate <aa,32.9,-31>}
  447.     #declare aa=aa+5
  448.   #end
  449.   torus {1,.1 rotate x*90 translate <-79.1,31,30.5>}
  450.   torus {1,.1 rotate x*90 translate <-79.1,31,-30.5>}
  451.   texture {metal}
  452.  }
  453.  union //cabrestante
  454.  {
  455.   cylinder {0,y*1,3}
  456.   #declare aa=1.5
  457.   #while (aa<7)
  458.     torus {2.5,.25 translate y*aa texture {cuerda}}
  459.     #declare aa=aa+.5
  460.   #end
  461.   sphere {0,3 scale <1,.5,1> clipped_by {plane {-y,0}} translate y*7}
  462.   translate <-110,20,0>
  463.   texture {metal}
  464.  }
  465.  union //cabos anclas
  466.  {
  467.   cylinder {<-135,20.5,15>,<-135,18.5,15>,1 texture {metal}}
  468.   cylinder {<-135,20.5,-15>,<-135,18.5,-15>,1 texture {metal}}
  469.   sphere {<-135,20.5,15>,.25}
  470.   sphere {<-135,20.5,-15>,.25}
  471.   cylinder {<-135,20.5,15>,<-110,25,0>,.25}
  472.   cylinder {<-135,20.5,-15>,<-110,25,0>,.25}
  473.   cylinder {<-135,20.5,15>,<-135,18,15>,.25}
  474.   cylinder {<-135,20.5,-15>,<-135,18,-15>,.25}
  475.   texture {cuerda}
  476.  }
  477. }
  478. /********************************* fin detalles cubiertas *********************/
  479.  
  480. /************************************* inicio ancla *******************************/
  481. #declare ancla=
  482. union 
  483. {
  484.  torus {1.5,.5 rotate x*90}
  485.  cylinder {<0,-1.5,0>,<0,-18,0>,.5}
  486.  cone {<0,-18,0>,.5,<0,-20,0>,0}
  487.  torus {8.5,.5 rotate x*90 clipped_by {plane {y,0}} translate y*-10}
  488.  cone {<-8.5,-10,0>,1.5,<-8.5,-8,0>,0}
  489.  cone {<8.5,-10,0>,1.5,<8.5,-8,0>,0}
  490.  cylinder {<0,-3,-7.5>,<0,-3,7.5>,.5}
  491.  sphere {<0,-3,-7.5>,1.5}
  492.  sphere {<0,-3,7.5>,1.5}
  493.  texture {metal}
  494. }
  495. /************************************* fin ancla *******************************/
  496.  
  497. /************************************** inicio farol ****************************/
  498. #declare farol=
  499. union
  500. {
  501.  union
  502.  {
  503.   sphere {0,5 clipped_by {plane {-y,0}} hollow}
  504.   sphere {0,5 clipped_by {plane {y,0}} scale <1,2.5,1> hollow}
  505.   pigment {rgbt .85}
  506.   finish {reflection .25 specular 1 roughness .0005 diffuse 0.3}
  507.  }
  508.  sphere {0,3.25 clipped_by {plane {y,0}} translate y*-10}
  509.  difference
  510.  {
  511.   sphere {0,5.25}
  512.   box {<10,3,-10>,<-10,-10,10>}
  513.  }
  514.  union
  515.  {
  516.   torus {5,.25}
  517.   torus {4.75,.25 translate y*-5}
  518.   #declare aa=0
  519.   #while (aa<360)
  520.    union
  521.    {
  522.     torus {5,.25 rotate <90,90,0> clipped_by {plane {-y,0}}}
  523.     torus {5,.25 rotate <90,90,0> clipped_by {plane {y,0}} scale <1,2.5,1>}
  524.     rotate y*aa
  525.    }
  526.    #declare aa=aa+45
  527.   #end
  528.   cone {y*-10,3,y*-7,1}
  529.   cylinder {y*-8,y*-4,.75}
  530.   no_shadow
  531.  }
  532.  
  533.  sphere {0,1.5 scale <1,.5,.1> translate y*5}
  534.  cylinder {y*-10,y*-30,1}
  535.  sphere {y*-30,1}
  536.  
  537.  #ifdef (luces)
  538.   light_source {<0,-3.9,0> rgb <1.5,1.25,0>
  539.                 fade_distance 100 fade_power 2}
  540.   sphere
  541.   {
  542.    0,1 pigment {rgbt 1} hollow
  543.    clipped_by {plane {-y,0}}
  544.    halo
  545.    {
  546.     linear emitting
  547.     turbulence <.1,1,.1>
  548.     jitter .4
  549.     color_map
  550.     {
  551.      [0 rgbt <2,2,0,1>]
  552.      [.5 red 3]
  553.      [1 rgb 2]
  554.     }
  555.    }
  556.    scale 5 scale <.3,1.25,.32> translate y*-4
  557.   }
  558.   sphere
  559.   {
  560.    0,1 pigment {rgbt 1} hollow
  561.    halo
  562.    {
  563.     linear emitting
  564.     color_map
  565.     {
  566.      [0 rgbt 1]
  567.      [1 rgbt <.5,.5,0,.5>]
  568.     }
  569.    }
  570.    scale 15 translate y*-4
  571.   }
  572.  #end
  573.  texture {laton}
  574. }
  575. /************************************** fin farol ****************************/
  576.  
  577. /************************************** inicio farolillo ****************************/
  578. #declare farolillo=
  579. union
  580. {
  581.  box {<-2.8,-3,-2.8>,<2.8,-8,2.8> hollow pigment {rgbt .9}
  582.       finish {reflection .3 specular 1 roughness .0005}}
  583.  torus {1,.2 rotate x*90}
  584.  cylinder {<-1,0,0>,<-10,0,0>,.2}
  585.  intersection
  586.  {
  587.   prism {linear_spline 4,-4 4 <0,-.5>,<-3,-3>,<3,-3>,<0,-.5>}
  588.   prism {linear_spline 4,-4 4 <0,-.5>,<-3,-3>,<3,-3>,<0,-.5> rotate z*90}
  589.   rotate x*-90
  590.  }
  591.  box {<-3,-8,-3>,<3,-9,3>}
  592.  union
  593.  {
  594.   cylinder {<-2.75,-8,-2.75>,<-2.75,-3,-2.75>,.25}
  595.   cylinder {<2.75,-8,-2.75>,<2.75,-3,-2.75>,.25}
  596.   cylinder {<-2.75,-8,2.75>,<-2.75,-3,2.75>,.25}
  597.   cylinder {<2.75,-8,2.75>,<2.75,-3,2.75>,.25}
  598.   cylinder {<0,-8,-2.75>,<0,-3,-2.75>,.25}
  599.   cylinder {<0,-8,2.75>,<0,-3,2.75>,.25}
  600.   cylinder {<-2.75,-8,0>,<-2.75,-3,0>,.25}
  601.   cylinder {<2.75,-8,0>,<2.75,-3,0>,.25}
  602.   cone {<0,-8,0>,1.5,<0,-6,0>,.5}
  603.   no_shadow
  604.  }
  605.  #ifdef (luces)
  606.   light_source {<0,-5.5,0> rgb <1.5,1.25,0>
  607.                 fade_distance 50 fade_power 2}
  608.   sphere
  609.   {
  610.    0,1 hollow
  611.    pigment {rgbt 1}
  612.    halo
  613.    {
  614.     linear emitting
  615.     turbulence .1
  616.     color_map
  617.     {
  618.      [0 rgbt <2,0,0,1>]
  619.      [.8 rgbt <2,2,0,.5>]
  620.      [.7 rgbt <2,2,0,.5>]
  621.      [.5 rgbt <2,0,0,0>]
  622.      [1 rgb 2]
  623.     }
  624.    }
  625.    scale <2,3.5,2>
  626.    translate y*-5.5
  627.   }
  628.   sphere
  629.   {
  630.    0,1 hollow
  631.    pigment {rgbt 1}
  632.    halo
  633.    {
  634.     linear emitting
  635.     color_map
  636.     {
  637.      [0 rgbt <1,1,0,1>]
  638.      [1 rgbt <1,1,0,.5>]
  639.     }
  640.    }
  641.    scale 10
  642.    translate y*-5.5
  643.   }
  644.  #end
  645.  texture {metal}
  646. }
  647. /************************************** fin farolillo ****************************/
  648.  
  649. /************************************** inicio banderas ****************************/
  650. #declare bandera=
  651. difference
  652. {
  653.  union
  654.  {
  655.   box {<0,7.5,.0001>,<-30,-7.5,-.0001> pigment {rgb <1,1,0>}
  656.         normal {ripples bump_size 2 scale 10 translate x*-50}}
  657.   box {<0,2.5,.00011>,<-30,5,-.00011> pigment {rgb <1,0,0>}
  658.         normal {ripples bump_size 2 scale 10 translate x*-50}}
  659.   box {<0,-2.5,.00011>,<-30,-5,-.00011> pigment {rgb <1,0,0>}
  660.         normal {ripples bump_size 2 scale 10 translate x*-50}}
  661.  }
  662.  cylinder {z*1,z*-1,7.5 scale <.15,1,1> pigment {rgb 0}}
  663. }
  664.  
  665. #declare estandarte=
  666. difference
  667. {
  668.  union
  669.  {
  670.   prism {linear_spline .0001,-.0001 4 <0,5>,<-40,0>,<0,-5>,<0,5> rotate x*90
  671.          pigment {rgb <1,1,0>} normal {ripples bump_size 2 scale 10 translate x*-50}}
  672.   prism {linear_spline .00011,-.00011 4 <0,0>,<-40,0>,<0,-5>,<0,0> rotate x*90
  673.          pigment {rgb <0,0,1>} normal {ripples bump_size 2 scale 10 translate x*-50}}
  674.  }
  675.  cylinder {z*1,z*-1,5 scale <.15,1,1> pigment {rgb 0}}
  676. }
  677. /************************************** fin banderas ****************************/
  678.  
  679. #declare galeon=
  680. union
  681. {
  682.  object {casco}
  683.  object {cubierta_inferior}
  684.  object {cubierta_superior}
  685.  object {cubierta}
  686.  object {alcazar_proa}
  687.  object {alcazar_popa}
  688.  object {bordas}
  689.  object {refuerzos_bordas}
  690.  object {detalles_alcazar translate x*40}
  691.  object {detalles_alcazar rotate y*180 translate x*-80}
  692.  object {timon}
  693.  object {armamento}
  694.  object {detalles_cubierta}
  695.  object {jarcia}
  696.  object {palo_mayor translate <0,10,0>}
  697.  object {trinquete translate <-95,10,0>}
  698.  object {mesana translate <60,20,0>}
  699.  union
  700.  {
  701.   object {mastelero_mesana}
  702.   #ifdef (velas)
  703.    object {vela_mesana translate y*-2}
  704.   #end
  705.   sphere {0,0 pigment {rgb 0}} //evita warning
  706.   rotate z*50 translate <60,110,1.5>
  707.  }
  708.  object {baupres rotate z*-20 translate <-100,10,0>}
  709.  #ifdef (velas)
  710.   object {vela_mayor_trinquete translate <-100,56,0>}
  711.   object {vela_gavia_trinquete translate <-99,123,0>}
  712.   object {vela_mayor_mayor translate <-5,59.5,0>}
  713.   object {vela_gavia_mayor translate <-4.5,134,0>}
  714.  #end
  715.  object {farol translate <115,50,-30>}
  716.  object {farol translate <115,50,30>}
  717.  object {farolillo translate <9,35,0>}
  718.  object {farolillo translate <-87,90,0>}
  719.  object {farolillo translate <-87,35,0>}
  720.  object {bandera translate <-3,195,0>}
  721.  object {estandarte translate <-98,180,0>}
  722.  object {ancla rotate y*30 translate <-135,18,-15>}
  723.  object {ancla rotate y*-30 translate <-135,18,15>}
  724. }
  725.